package abd.pr2.bd;

import java.util.List;

import javax.xml.xquery.XQDataSource;
import javax.xml.xquery.XQException;

import net.xqj.exist.ExistXQDataSource;
import abd.pr2.gui.NoticiasWindow;
import abd.pr2.model.Noticia;
import abd.pr2.model.Usuario;

public class DAO {
	
	private XQDataSource xqds;
	
	public DAO(XQDataSource xqds) {
		this.xqds = xqds;
	}
	
	public List<Noticia> consultarNoticiasPorEtiqueta(String etiqueta){
		return new ConsultaNoticiasPorCategoria(xqds, etiqueta).ejecuta();
	}
	
	public List<Usuario> consultarUsuariosMasActivos(){
		return new ConsultaUsuariosMasActivos(xqds).ejecuta();
	}
	
	public String consultarInformacionNoticia(String id){
		return new ConsultaNoticiaPorId(xqds, id).ejecuta().get(0);
	}
	
	public List<String> consultarEtiquetas(){
		return new ConsultaCategorias(xqds).ejecuta();
	}
	
	public static void main(String[] args){
		
		XQDataSource xqds = new ExistXQDataSource();
		
		try {
			xqds.setProperty("serverName", "localhost");
			xqds.setProperty("port", "8080");
		} catch (XQException e) {
			System.out.println("No hay conexion con eXist");
			e.printStackTrace();
		}
		
		DAO dao = new DAO(xqds);
		new NoticiasWindow(dao);
		
	}

}
